package org.example.review.service;

import org.example.review.dto.ChangePasswordRequest;
import org.example.review.dto.LoginRequest;
import org.example.review.dto.LoginResponse;
import org.example.review.dto.UserDTO;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 用户登录
     * @param loginRequest 登录请求信息
     * @return 登录响应，包含token和用户信息
     */
    LoginResponse login(LoginRequest loginRequest);
    
    /**
     * 根据用户ID获取用户信息
     * @param userId 用户ID
     * @return 用户信息
     */
    UserDTO getUserById(Integer userId);
    
    /**
     * 根据用户名获取用户信息
     * @param username 用户名
     * @return 用户信息
     */
    UserDTO getUserByUsername(String username);
    
    /**
     * 修改密码
     * @param request 修改密码请求
     * @return 是否修改成功
     */
    boolean changePassword(ChangePasswordRequest request);
}
